//管理用户数据相关
import { defineStore } from "pinia";
import { loginAPI } from "@/apis/user";
import { ref } from "vue";
import { useCartStore } from "./cartStore";
import { mergeCartAPI } from "@/apis/cart";

export const useUserStore = defineStore(
  "user",
  () => {
    const cartStore = useCartStore();

    // 1.定义管理用户数据的state
    const userInfo = ref({});

    //2.定义获取接口数据的函数
    const getUserINfo = async ({ account, password }) => {
      const res = await loginAPI({ account, password });
      // console.log(res);
      userInfo.value = res.result;
      //合并购物车的操作
      await mergeCartAPI(
        cartStore.cartList.map((item) => {
          return {
            skuId: item.skuId,
            selected: item.selected,
            count: item.count,
          };
        })
      );
      cartStore.updateNewList();
    };

    //退出时清除用户登录信息
    const clearUserInfo = () => {
      userInfo.value = {};
      //执行清除购物车的action
      cartStore.clearCart();
    };

    //3.以对象形式把数据和方法导出
    return { userInfo, getUserINfo, clearUserInfo };
  },
  {
    persist: true,
  }
);
